--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sbapp/kivymd/utils/set_bars_colors.py 2dcc759c88f3f2471ffcf6146721200a16aadede (2dcc759c) Text, 4.05 KB
T8b949e# The code is taken from AKivyMD project -
T8b949e# https://github.com/kivymd-extensions/akivymd
T8b949e#
T8b949e# Source code -
T8b949e# kivymd_extensions/akivymd/uix/statusbarcolor.py
T8b949e#
T8b949e# Author Sina Namadian -
T8b949e# https://github.com/quitegreensky
Tff7b72from T7ee787typing Tff7b72import Te6edf3Union
Tff7b72from T7ee787kivyT7ee787.T7ee787utils Tff7b72import Te6edf3get_hex_from_colorTb4b4b4, Te6edf3platform
Tff7b72def Td2a8ffset_bars_colorsTb4b4b4(
Te6edf3status_bar_colorTb4b4b4: Te6edf3UnionTb4b4b4[Tff7b72NoneTb4b4b4, Tffa657listTb4b4b4]Tb4b4b4,
Te6edf3navigation_bar_colorTb4b4b4: Te6edf3UnionTb4b4b4[Tff7b72NoneTb4b4b4, Tffa657listTb4b4b4]Tb4b4b4,
Te6edf3icons_colorTb4b4b4: Tffa657str Tff7b72= Ta5d6ff"Ta5d6ffLightTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4:
T8b949e"""
Sets the color of the status of the StatusBar and NavigationBar.
.. warning:: Works only on Android devices.
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/status-bar-color-light.png
:align: center
.. code-block:: python
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.utils.set_bars_colors import set_bars_colors
KV = '''
MDBoxLayout:
orientation: "vertical"
MDTopAppBar:
title: "MDTopAppBar"
MDBottomNavigation:
panel_color: app.theme_cls.primary_color
text_color_active: .2, .2, .2, 1
text_color_normal: .9, .9, .9, 1
use_text: False
MDBottomNavigationItem:
icon: 'gmail'
MDBottomNavigationItem:
icon: 'twitter'
MDBottomNavigationItem:
icon: 'youtube'
'''
class Test(MDApp):
def build(self):
self.set_bars_colors()
return Builder.load_string(KV)
def set_bars_colors(self):
set_bars_colors(
self.theme_cls.primary_color, # status bar color
self.theme_cls.primary_color, # navigation bar color
"Light", # icons color of status bar
)
Test().run()
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/navigation-bar-color.png
:align: center
.. rubric:: Dark icon mode
.. code-block:: python
def set_bars_colors(self):
set_bars_colors(
self.theme_cls.primary_color, # status bar color
self.theme_cls.primary_color, # navigation bar color
"Dark", # icons color of status bar
)
.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/status-bar-color-dark.png
:align: center
.. versionadded:: 1.0.0
"""
Tff7b72if Te6edf3platform Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72from T7ee787androidT7ee787.T7ee787runnable Tff7b72import Te6edf3run_on_ui_thread
Tff7b72from T7ee787jnius Tff7b72import Te6edf3autoclass
Te6edf3Color Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6ffandroid.graphics.ColorTa5d6ff"Tb4b4b4)
Te6edf3WindowManager Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6ffandroid.view.WindowManager$LayoutParamsTa5d6ff"Tb4b4b4)
Te6edf3activity Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6fforg.kivy.android.PythonActivityTa5d6ff"Tb4b4b4)Tff7b72.Td2a8ffmActivity
Te6edf3View Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6ffandroid.view.ViewTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffstatusbarTb4b4b4(Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Te6edf3status_color Tff7b72= Tff7b72None
Te6edf3navigation_color Tff7b72= Tff7b72None
Tff7b72if Te6edf3status_bar_colorTb4b4b4:
Te6edf3status_color Tff7b72= Te6edf3get_hex_from_colorTb4b4b4(Te6edf3status_bar_colorTb4b4b4)Tb4b4b4[Tb4b4b4:T79c0ff7Tb4b4b4]
Tff7b72if Te6edf3navigation_bar_colorTb4b4b4:
Te6edf3navigation_color Tff7b72= Te6edf3get_hex_from_colorTb4b4b4(Te6edf3navigation_bar_colorTb4b4b4)Tb4b4b4[Tb4b4b4:T79c0ff7Tb4b4b4]
Te6edf3window Tff7b72= Te6edf3activityTff7b72.Td2a8ffgetWindowTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3icons_color Tff7b72== Ta5d6ff"Ta5d6ffDarkTa5d6ff"Tb4b4b4:
Te6edf3windowTff7b72.Td2a8ffgetDecorViewTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffsetSystemUiVisibilityTb4b4b4(
Te6edf3ViewTff7b72.Td2a8ffSYSTEM_UI_FLAG_LIGHT_STATUS_BAR
Tb4b4b4)
Tff7b72elif Te6edf3icons_color Tff7b72== Ta5d6ff"Ta5d6ffLightTa5d6ff"Tb4b4b4:
Te6edf3windowTff7b72.Td2a8ffgetDecorViewTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffsetSystemUiVisibilityTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3windowTff7b72.Td2a8ffclearFlagsTb4b4b4(Te6edf3WindowManagerTff7b72.Td2a8ffFLAG_TRANSLUCENT_STATUSTb4b4b4)
Te6edf3windowTff7b72.Td2a8ffaddFlagsTb4b4b4(Te6edf3WindowManagerTff7b72.Td2a8ffFLAG_DRAWS_SYSTEM_BAR_BACKGROUNDSTb4b4b4)
Tff7b72if Te6edf3status_colorTb4b4b4:
Te6edf3windowTff7b72.Td2a8ffsetStatusBarColorTb4b4b4(Te6edf3ColorTff7b72.Td2a8ffparseColorTb4b4b4(Te6edf3status_colorTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3navigation_colorTb4b4b4:
Te6edf3windowTff7b72.Td2a8ffsetNavigationBarColorTb4b4b4(Te6edf3ColorTff7b72.Td2a8ffparseColorTb4b4b4(Te6edf3navigation_colorTb4b4b4)Tb4b4b4)
Tff7b72return Te6edf3run_on_ui_threadTb4b4b4(Te6edf3statusbarTb4b4b4)Tb4b4b4(Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────